package cn.ocars.playgame.pencilstudy

import cn.ocars.playgame.pencilstudy.ui.components.*
import org.junit.Test
import org.junit.Assert.*

/**
 * 文字识别功能测试
 * 注意：这些测试需要Android环境，因为使用了Android的Path类
 */
class WritingRecognitionTest {
    
    @Test
    fun testSupportedCharacters() {
        val supportedChars = CharacterDataProvider.getSupportedCharacters()
        
        assertTrue("应该支持数字", supportedChars.contains("1"))
        assertTrue("应该支持汉字", supportedChars.contains("一"))
        assertTrue("应该支持字母", supportedChars.contains("A"))
        assertTrue("应该支持笔画", supportedChars.contains("横"))
        
        println("支持的字符: ${supportedChars.joinToString(", ")}")
    }
    
    // 注意：以下测试需要Android环境，因为CharacterDataProvider使用了Android的Path类
    // 在实际项目中，这些应该作为Android Instrumented Tests运行
    
    @Test
    fun testBasicFunctionality() {
        // 测试基本的数据结构
        val mockStroke = StrokeData(
            vertices = listOf(0.0f, 0.0f, 0.0f, 1.0f, 1.0f, 0.0f),
            widths = listOf(4.0f, 4.0f)
        )
        
        assertNotNull("StrokeData应该能正常创建", mockStroke)
        assertEquals("顶点数应该正确", 6, mockStroke.vertices.size)
        assertEquals("线宽数应该正确", 2, mockStroke.widths.size)
        
        println("基本功能测试通过")
    }
}